package cn.lovemmd.model.admin.config;

import lombok.Data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.List;
import java.util.Map;

/**
 * 应用配置类
 * 展示Lombok的各种用法
 * 
 * @author TLS
 * @since 2024-01-01
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "app")
public class AppConfig {

    private static final Logger log = LoggerFactory.getLogger(AppConfig.class);

    /**
     * 应用名称
     */
    private String name = "SSM-Backend";

    /**
     * 应用版本
     */
    private String version = "1.0.0";

    /**
     * 是否开启调试模式
     */
    private boolean debug = false;

    /**
     * 支持的文件类型
     */
    private List<String> supportedFileTypes;

    /**
     * 职业映射配置
     */
    private Map<String, String> occupationMapping;

    /**
     * 系统配置
     */
    private SystemConfig system = new SystemConfig();

    /**
     * 系统配置内部类
     */
    @Data
    public static class SystemConfig {
        /**
         * 最大文件大小（MB）
         */
        private int maxFileSize = 100;

        /**
         * 上传目录
         */
        private String uploadDir = "/uploads";

        /**
         * 缓存过期时间（秒）
         */
        private int cacheExpireTime = 3600;
    }

    /**
     * 初始化配置
     */
    public void init() {
        log.info("应用配置初始化完成: name={}, version={}, debug={}", name, version, debug);
    }
}
